function isCBT(root) {
  if(root === null) return true
  const queue = [root]
  let leaf = false // 是否遇到左右孩子不双全的节点
  while(queue.length > 0) {
    let tnode = queue.shift()
    let left = tnode.left
    let right = tnode.right
    // 如果leaf为true，并且后面还存在不是叶子节点的节点，或者左不存在但是右存在，一定不是完全二叉树
    if((leaf && left !== null || right !== null) || (left === null && right !== null)) return false
    if(left) queue.push(left)
    if(right) queue.push(right)
    // 左右不双全，将leaf置为true
    if(left === null || right === null) leaf = true
  }
  return true
}